An operating system (OS) is software, consisting of programs and data, that runs on processing devices such as computers. The OS manages the computer hardware and provides common services for efficient execution of various computer application software programs. The OS may include a number of libraries accessible to a computer application program running on top of the OS. The libraries may provide, for example, well defined programming sequences that the applications can reuse. Numerous interfaces may exist in the OS to allow the application to access the needed libraries.
Over time, the OS developer may release new verisions of the OS. These new versions (or releases) may include new and/or different libraries or interfaces as compared to previous versions of the OS. In addition, certain librarires or interfaces may be changed and/or removed in the new version of the OS. In certain situations, the OS may be provided by one vendor while the computer application programs may be provided by another vendor. These programs may be referred to as independent software vendor (ISV) applications. In general, the ISV applications, and their creators, may not have access to the source code of the OS. Thus, the ISV applications have no way to tell which OS librarires and interfaces are available in the current OS version. It may be useful for the ISV applications to know which libraries and interfaces are available so that they can determine whether an ISV application will function properly if the OS on a host machine is upgraded or downgraded to a different version.